package com.example.onlinemusicserver2024.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.onlinemusicserver2024.common.R;
import com.example.onlinemusicserver2024.mapper.BannerMapper;
import com.example.onlinemusicserver2024.model.domain.Banner;
import com.example.onlinemusicserver2024.service.BannerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BannerServiceImpl extends ServiceImpl<BannerMapper, Banner> implements BannerService {
    @Autowired
    BannerMapper bannerMapper;

    //将轮播图片放在redis缓存中 , redis 是以key-value进行存储的
    // 在请求轮播图时，如果redis缓存中有数据，直接读取redis中的数据；
    // 如果在缓存中没有查询到数据，再查询mysql数据库，并将数据保存到缓存中
    @Cacheable(value = "banner", key = "'list'")
    @Override
    public R getAllBanner() {
        System.out.println("===========没有执行Redis缓存查询，而是从mysql数据库中查询===========");
        List<Banner> banners = bannerMapper.selectList(null);
        return R.success("查询成功", banners);
    }
}
